16. Statistica descrittiva#

La statistica descrittiva si occupa di descrivere e riassumere le informazioni contenute nei dati disponibili, con lo scopo di:

  • comunicare il maggior numero di informazioni rilevanti

  • nella maniera più semplice e sintetica possibile

Questo, in accordo con la percezione umana todo, avviene tramite indicazioni di:

  • posizione, come la media, la mediana, la moda, o loro variazioni sul tema

  • dispersione, come la deviazione standard, la varianza, lo scarto interquartile,…

  • forma, come skewness o curtosi, o momenti di ordine superiore

  • correlazione o dipendenza todo correlazione non è dipendenza, fare un riferimento; è necessario dedurre una dipendenza? E” tra i compiti della statistica descrittiva?

Oggi sono disponibili librerie e strumenti informatici gratuiti e liberi per l’analisi e la rappresentazione dei dati. Ad esempio, native o compatibili con Python,

  • pandas, e geoapndas per dati geografici

  • plotly come libreria grafica (con dash come ambiente per lo sviluppo di semplici app interattive)

Per una galleria di esempi, si rimanda agli esempi e alle risorse messe a disposizione direttamente dagli sviluppatori, come ad esempio i grafici elementari, o i grafici frequentemente usati in statistica, e un”introduzione con le impostazioni di base. Per un livello di dettaglio maggiore, è spesso possibile consultare i file sorgenti con l’implementazione degli strumenti resi disponibili su repository pubblici: nel caso di plotly è possibile consultare questi file nel repository pubblico.

16.1. Dimensione dei dati#

  • variabili 1-dimensionali

  • variabili 2-dimensionali o di dimenione piccola

  • variabili di grandi dimensioni: possono essere necessarie tecniche di riduzione dei dati per far emergere le proprietà significative contenute nei dati raccolti

16.2. Rappresentazione grafica#

EDA: exploratory data analysis. Può essere utilizzata in applicazioni di statistica descrittiva o nelle prime fasi di applicazioni di statistica inferenziale, «per vedere che faccia hanno i dati raccolti» e per fare una prima selezione dei metodi da applicare nelle fasi successive dell’indagine.

Attualmente, sono disponibili i mezzi informatici e un gran numero di librerie per l’analisi dati, dall’elaborazione alla rappresentazione.

16.3. Variabili 1-dimensionali#

import plotly.express as px
data = px.data.iris()
data.head()
sepal_length sepal_width petal_length petal_width species species_id
0 5.1 3.5 1.4 0.2 setosa 1
1 4.9 3.0 1.4 0.2 setosa 1
2 4.7 3.2 1.3 0.2 setosa 1
3 4.6 3.1 1.5 0.2 setosa 1
4 5.0 3.6 1.4 0.2 setosa 1
# !pip install plotly==5.10
!pip install plotly==5.24
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: plotly==5.24 in /home/davide/.local/lib/python3.8/site-packages (5.24.0)
Requirement already satisfied: tenacity>=6.2.0 in /home/davide/.local/lib/python3.8/site-packages (from plotly==5.24) (8.0.1)
Requirement already satisfied: packaging in /home/davide/.local/lib/python3.8/site-packages (from plotly==5.24) (24.1)
WARNING: Error parsing dependencies of arcgis: .* suffix can only be used with `==` or `!=` operators
    keyring (<=21.8.*,>=19)
             ~~~~~~~^

WARNING: Error parsing dependencies of quilt3: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier
    urllib3 (<1.26,>=1.25.4numpy>=1.14.0) ; extra == 'tests'
            ~~~~~~~~~~~~~~~^

WARNING: Error parsing dependencies of distro-info: Invalid version: '0.23ubuntu1'
WARNING: Error parsing dependencies of python-debian: Invalid version: '0.1.36ubuntu1'

import plotly.io as pio
import plotly.express as px
import plotly.offline as py

df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", size="sepal_length")
fig.show()
# Display Plotly chart
import plotly.graph_objects as go
import plotly.io as pio

fig = go.Figure()
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[1, 4, 9], name="y = x^2"))
fig.show()

"""
# Force MathJax to re-render
from IPython.display import display, Javascript
display(Javascript("MathJax.Hub.Queue(['Typeset', MathJax.Hub]);"))
"""
'\n# Force MathJax to re-render\nfrom IPython.display import display, Javascript\ndisplay(Javascript("MathJax.Hub.Queue([\'Typeset\', MathJax.Hub]);"))\n'
import plotly.express as px

# import plotly.io as pio
# pio.renderers.default = "iframe_connected"

df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color="species")
fig.show()
# all three of these worked
# fig.show(renderer='iframe')
# fig.show(renderer='iframe_connected')
# fig.show(renderer='colab')

16.4. Variabili 2-dimensionali#

\[a = 1\]

16.5. Variabili di grandi dimensioni#